MIDI data, usually in the form of packets or distinct bundles of a number of bytes, was developed to overcome the large data and fast timing requirements of digitizing the audio music itself and sending that data to a remote site for recreation of the music itself. Instead of digitizing the audio itself, the industry developed MIDI (the protocol) to carry the data necessary to activate sounds, various controllers, and to provide other information. In this way relatively small bundles of MIDI data efficiently carry enough information to represent extensive music files. However, in order to reproduce the music, the MIDI data must be used in conjunction with a sequencer and a synthesizer. Herein a sequencer is defined as a computer and memory arranged to store in parallel a plurality of streaming (substantially continuous) time sequences of MIDI data, and a synthesizer is any device that accepts MIDI data and produces sounds therefrom or accepts inputs from an instrument and produces MIDI data therefrom--the sequencer is, in effect, a computer and memory configured as a multi-track tape recorder. Computer storage of MIDI data has the advantage that the stored data can be edited and/or manipulated as desired.
The use of MIDI data is growing in popularity for the serious musicians, the hobbyist, teachers and students, and for the multi-media. The Internet provides a means for transferring MIDI data between and among people for collaboration and sharing of resources and knowledge, but such transferring can be used over any communications network suitable for transmitting digital signals. Herein communications network is defined as any electronic/optical link network suitable for sending and receiving digitized data.
A limitation of the process by which MIDI data is transferred over the Internet between people is the necessity for each musician to create MIDI data via a synthesizer and send the data serially to a computer system that stores that data in formats and locations that are not conducive to interactive music collaboration. Too much time is spent on the technical details of sending and receiving and too little on the collaborative generation of music. Typically, users would have a computer, a synthesizer/instrument with resident sequencer software that eventually stores MIDI data in the computer memory, Internet access hardware and software, and a browser or other such graphical user interface (GUI) that allows the user to view the Internet or World Wide Web (WWW). In a typical operation, the locally generated MIDI data is stored in local memory or it may be sent directly via the Internet. For the transference of MIDI data over the Internet, a file transfer protocol (FTP), e-mail, or the like may be used. To send data, as just described, the user must be familiar with each of the different hardware and software modules.
Synthesizer/sequencers are often difficult to use and/or manipulate. Moreover, each synthesizer/sequencer operates differently from each other. The MIDI data resides in proprietary formatted files, although the MIDI data itself is in universal protocol, on-board sound and timbre software editing is not standard. Since these differences must be specifically handled in an ad hoc manner such non-compatible items limit the present use of the Internet for music collaboration.
FIG. 1 shows a typical system for transferring music information, usually MIDI files. A synthesizer 2 is connected via a serial port to a computer system 4. There is a corresponding remote system with a synthesizer 2' connected to a computer system 4'. Each of the computer systems has Internet access often via a web browser that provides a graphical user interface (GUI). The computer systems have some kind of file transfer application 6 and 6', e.g. hypertext transfer protocol (HTTP). A musician at each of the two sites (remote from each other) may play and the synthesizers create MIDI data streams. The streams are input to the local computer systems which will store the MIDI data in various formats, which are not standardized, that can be transferred later over the Internet. Each musician can transfer the MIDI file to the other for subsequent playing. However the receiving musicians usually can play the music only after the received formats have been deciphered and/or modified for playing on the local synthesizer. The individuals must combine the locally stored files with the altered received files which are then combined for playing. Timing must be addressed in order in the above example, but the above scenario is not an interactive process conducive to real time interactive music collaboration. That is the musicians cannot play together as if in the same room.
It is an object of the present invention to provide a software tool embedded within a browser that allows sending, receiving, editing, and/or playing locally or remotely of multi-tracks of MIDI data.
It is yet another object of the present invention to provide means for real-time music collaboration over a communication network.
Another object of the present invention is to provide means for two or more remote musicians to play together as if they were playing physically at the same location.
It is another object of the present invention to provide means for musicians to access MIDI data files in remote locations for use in creating new MIDI data files.
It is yet another object of the present invention to provide means to transfer MIDI data packets embedded within transfer control protocol (TCP) packets.
It is still another object of the present invention to provide an embedded MIDI tool within a browser that handles all MIDI data transactions between the browser, the local and remote computer systems, and the local and remote synthesizers.
It is another object of the present invention to provide a single universal tool for handling MIDI data over communications networks.